/*
 * ManejadorAccesoDatos.h
 *
 *  Created on: 10/09/2010
 *      Author: julfc
 */

#ifndef MANEJADORACCESODATOS_H_
#define MANEJADORACCESODATOS_H_

#include <string>
#include <cstdio>
#include <sstream>
#include <cstring>
#include <iostream>
#include <fstream>
#include <cstdlib>
#include "../moduloConsultas/ManejadorConfiguracion.h"
#include "../moduloEncriptacion/Encriptador.h"

using namespace std;

enum AbrirCrearArchivo {
	//Crea un archivo nuevo o lo sobreescribe.
	CREAR,
	//Abre un archivo.
	ABRIR
};

class ManejadorAccesoDatos {
#define TAMANIO_BLOQUE 32
private:

public:
	fstream* archivo;
	//Encriptador enc;

	ManejadorAccesoDatos();
	ManejadorAccesoDatos(char* nombreArchivo, AbrirCrearArchivo abrirCrear);

	long getTamanioBloques();
	long getCantidadBloques();
	long buscarEspacioEnBloques(long tamanio);
	void escribir(char* cadena, long nroBloque);
	char* leer(long offset);
	char* leerBloque(long nro_bloque);
	char* inicillizarBloque(long tam_bloque);
	long buscarLugarEnBloque(long tamanio);

	virtual ~ManejadorAccesoDatos();


};
#endif /* MANEJADORACCESODATOS_H_ */
